<?php
/**
 * Klasa Abstracyjna podmodułów(Controllerów). Wymusza się na podmodułąch rozszerzenie tej klasy.
 * @author Mateusz Łędzewicz
 * @author Patryk Powiłan
 */
	abstract class ControllerAbstract{
		protected $main;
		public $cookie;
		public $post;
		public $get;
		public $session;
		public $db;
		public $view;
		public function __construct($main){
			//TODO zostawić odwołanie do main czy zapisywać cookie, post itp......
			$this -> main = $main;
			$this->cookie = $main->cookie;
			$this->post = $main->post;
			$this->get = $main->get;
			$this->session = $main->session;
			
		}
		/**
		 * Sprawdzenie uprawnien użytkownika(Czy dany użytkownik ma prawo używać modułu)
		 * @param unknown $userPermision uprawnienia użytkownika
		 * @return bool jest uprawniony badz nie
		 */
		abstract public function checkUserPermision($userPermision);
		
		/**
		 * Inicjalizacja modułu
		 */
		
		abstract public function init();
		/**
		 * Oddanie kontroli podmodułowi. Rozpoczęcie działania.
		 */
		abstract public function begin();
		/**
		 * Pobranie widoku z podmodułu
		 */
		abstract public function getView();
	}
?>